Multi-tier geofence detection

ABSTRACT

Methods, program products, and systems for multi-tier geofence detection are disclosed. In general, in one aspect, a mobile device can be configured to perform a task when the mobile device enters a geographic region. The mobile device can monitor a current location using a multi-tier approach. A baseband subsystem can monitor a coarse location of the mobile device using various course location parameters, such as a mobile country code (MCC), a location area code (LAC), or a cell identifier (cell ID), as the mobile device moves closer to the geographic region. Upon determining that the mobile device is in a cell that intersects the geographic region, the baseband subsystem can transfer the monitoring to the application subsystem. The task can be performed when the application subsystem determines that the mobile device is currently located in the geographic region.

TECHNICAL FIELD

This disclosure relates generally to location-based processing on amobile device.

BACKGROUND

A modern mobile device can incorporate functions of a computer, of acellular transceiver, or a wireless (e.g., WiFi™) transceiver. Forexample, the mobile device can perform traditional computer functions,such as executing application programs, storing various data, anddisplaying digital images. These functions can be performed in anapplication subsystem of the mobile device. The application subsystemcan include an application processor, an application operating system,and various input/output devices.

When the mobile device functions as a cellular transceiver, the mobiledevice can initiate and receive phone calls, send and receive data overa cellular network, identify cellular tower connections, and determinewhen and whether to switch cellular towers. Similarly, the mobile devicecan function as a wireless radio transceiver and send and received dataover a wireless network, e.g. a WiFi™ network. These radio-relatedfunctions can be performed in a baseband subsystem of the mobile device.The baseband subsystem can include a baseband processor and a basebandoperating system. The baseband processor can be an integrated circuit(IC) device (e.g., a Large Scale Integrated Circuit (LSI)) that performscommunication functions. The baseband processor can include, forexample, a Global System for Mobile Communications (GSM) modem. Thebaseband processor can be can be integrated with the applicationprocessor in a System-on-Chip (SoC). In general, the applicationsubsystem can consume more power than the baseband subsystem whenactivated.

SUMMARY

Methods, program products, and systems for multi-tier geofence detectionare disclosed. In general, in one aspect, a mobile device can beconfigured to perform a task when the mobile device enters a geographicregion. The mobile device can monitor a current location using amulti-tier approach. A baseband subsystem can monitor a coarse locationof the mobile device using a mobile country code (MCC), a location areacode (LAC), or a cell identifier (cell ID), as the mobile device movescloser to the geographic region. The baseband subsystem can notify anapplication subsystem when the mobile device moves sufficiently close tothe geographic region such that monitoring the location in finerlocation accuracy is warranted. Upon determining that the mobile deviceis in a cell that intersects the geographic region, the basebandsubsystem can transfer the monitoring to the application subsystem. Themobile device can determine that the mobile device enters the geographicregion by triangulating locations of access points of a wireless localarea network (WLAN) or by using position coordinates from a globalpositioning system (e.g., GPS). The task can be performed based on thedetermination that the cell intersects the geographic region.

In another aspect, the mobile device can be configured to detect whetherthe mobile device has crossed a geofence to enter a geographic regionusing multi-tier detection. The mobile device can receive a request toperform a task. The request can specify that the task is to be performedwhen the mobile device is located in a predefined first geographicregion. The first geographic region can be defined using a firstlocation accuracy. The mobile device can monitor a current location ofthe mobile device using a second location accuracy. The second locationaccuracy initially can be less precise than the first location accuracy.The mobile device can determine that the mobile device is located in asecond geographic region. The second geographic region can be specifiedusing the second granularity and can include at least a portion of thefirst geographic region. The mobile device can refine the secondlocation accuracy upon the determining that the mobile device is in thesecond geographic region. The mobile device can continue a cycle ofmonitoring, determining, and refining until an exit condition issatisfied. Upon determining that the mobile device is located in thefirst geographic region, the mobile device can perform the requestedtask.

The multi-tier geofence detection techniques can be implemented toachieve the following exemplary advantages. On a mobile device, abaseband subsystem can consume less power than an application subsystem.Multi-tier geofence detection can be achieved in the baseband subsystemuntil participation of the application subsystem is needed. The “asneeded” approach allows the application subsystem to be set to apower-saving mode until the mobile device is sufficiently close to thegeofence, thus saving battery power. Likewise, the application programsthat can determine a more precise location of the mobile device thancountry, location area, and cell can be invoked only when necessary. Forexample, location triangulation functions or GPS processing, which canbe resource intensive in terms of signal detection and CPU processingcycles, can be invoked when the mobile device is sufficiently close tothe geofence, thus saving computing resources of the mobile device.

The details of one or more implementations of multi-tier geofencedetection are set forth in the accompanying drawings and the descriptionbelow. Other features, aspects, and advantages of multi-tier geofencedetection will become apparent from the description, the drawings, andthe claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an overview of techniques of multi-tier geofence detection.

FIG. 2 illustrates an exemplary tier of geofence detection where mobilecountry code (MCC) is used to determine a coarse location of a mobiledevice.

FIG. 3 illustrates an exemplary tier of geofence detection where amobile device is configured to monitor multiple cells of a cellularcommunications network.

FIG. 4 illustrates an exemplary tier of geofence detection where accesspoints of a wireless local area network (WLAN) are used to determine acurrent location of a mobile device.

FIG. 5 is a block diagram illustrating various modules of a mobiledevice configured to utilize techniques of multi-tier geofencedetection.

FIG. 6 is a flowchart illustrating an exemplary process implementingmulti-tier geofence detection techniques.

FIG. 7 is a flowchart illustrating another exemplary processimplementing multi-tier geofence detection techniques.

FIG. 8 is a flowchart illustrating an exemplary process of multi-tiergeofence detection using various granularities.

FIG. 9 is a block diagram illustrating an exemplary device architectureof a mobile device implementing the features and operations described inreference to FIGS. 1-8.

FIG. 10 is a block diagram of an exemplary network operating environmentfor the mobile devices of FIGS. 1-9.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION Overview of Multi-tier Geofence Detection

FIG. 1 is an overview of techniques of multi-tier geofence detection.Mobile device 100 can be an exemplary mobile device that implements thetechniques of multi-tier geofence detection. In FIG. 1, mobile device100 is configured to perform one or more tasks when mobile device 100 islocated in geographic region 104. Geographic region 104 can be definedusing a geofence. The geofence can be a boundary configured on a servercomputer or on a mobile device (e.g., mobile device 100). The geofencecan be a circle, a polygon, or any geographic shape that enclosesgeographic region 104. Geographic region 104 can correspond to, forexample, an office, a floor of a building, a building, a block ofbuildings, a city, a state, etc. The task to be performed can include,for example, launching an application program, setting certain files tonon-accessible mode, initiating a phone call, sounding an alarm, amongothers. For illustration of multi-tier geofence detection, geographicregion 104 is located in the United States.

As mobile device 100 moves towards or away from geographic region 104(distance 102 a-d), mobile device 100 can use various ways to determinewhether mobile device 100 is located inside geographic region 104. Thedetermination can use multi-tier detection. As closer mobile device 100moves toward geographic region 104, more precise location determinationmechanism can be used to determine the current location of mobile device100. For example, when mobile device 100 is close to geographic region104 (distances 102 d), a more precise location monitoring determinationmechanism (e.g., using triangulation of wireless access points or GPS)can be used. The precise location monitoring determination mechanism canbe executed in an application subsystem, which generally can consumemore power than a baseband subsystem. Therefore, it can be more powerefficient to use the baseband subsystem to monitor the location untilmobile device 100 is close to geographic region 104 to warrant the useof more precise location monitoring mechanisms.

When mobile device 100 is far away from geographic region 104 (distances102 a), mobile device 100 can monitor a MCC of a cellular network. Basedon the MCC, mobile device 100 can determine in which country mobiledevice 100 is located. Monitoring the MCC can be accomplished in thebaseband subsystem of mobile device 100. The application subsystem canregister one or more MCCs (e.g., MCCs of the United States, representedas polygon 122) associated with geographic area 104 to the basebandsubsystem. The baseband subsystem can constantly or intermittentlymonitor a current MCC of mobile device 100. For example, when a currentMCC indicates that mobile device 100 is located in Canada (e.g., inpolygon 120), or that mobile device 100 is located in Mexico (e.g., inpolygon 124), the baseband subsystem need not request furtherinformation from the application processor of mobile device 100.

When mobile device 100 moves into polygon 122 containing the UnitedStates (e.g., when mobile device 100 is at distance 102 b fromgeographic region 104), the baseband subsystem of mobile device 100 caninvoke or notify the application subsystem of mobile device 100 torequest location information that has more precise location accuracy.The application subsystem can provide to the baseband subsystem one ormore LACs 130. LAC 130 can represent a location area that includes oneor more radio cells in a cellular communications network. Each locationarea can correspond to a unique LAC 130. In FIG. 1, geographic region104 is located in an exemplary location area represented by LAC 132. Asingle task can be configured to be performed when mobile device islocated in multiple geographic regions 104. Likewise, multiple tasks canbe configured to be performed when mobile device 100 is located in asingle geographic region 104. Each geographic region 104 can be locatedin multiple countries or location areas.

The baseband subsystem of mobile device 100 need not seek furtherinformation from the application subsystem of mobile device 100 untilmobile device 100 is located in the location area or location areas inwhich geographic region 104 is located. Mobile device 100 can determinethat mobile device 100 is located in a location area when mobile device100 determines that a current LAC matches LAC 132 (“LAC3”).

When mobile device 100 is located closer to geographic region 104 (e.g.,at distance 102 c), location of mobile device 100 can be measured usingfiner location accuracy. For example, upon determining that mobiledevice 100 is in the location area where geographic region 104 islocated, the baseband subsystem of mobile device 100 can notify theapplication subsystem of the LAC (e.g., LAC 132). The applicationsubsystem of mobile device 100 can request, from a server or from a datastore on mobile device 100, one or more cell IDs. The cell IDs caninclude unique identifiers of cell towers (also known as cell sites,which can include antennae and electronic communications equipments forcreating a cell in a cellular network). The cells can correspond to(e.g., intersect) geographic region 104. Geographic region 104 canintersect multiple cells (e.g., cell 142 a, 142 b, and 142 c). Theserver can send cell IDs of all cells intersecting geographic region 104to mobile device 100. Mobile device 100 can register these cell IDs withthe baseband subsystem. The baseband subsystem can monitor in which cellmobile device 100 is currently located. When the baseband subsystemdetects that mobile device 100 is located in one of the cells thatintersect with geographic region 104, the baseband subsystem can invokethe application subsystem and notify the application subsystem of thecurrent cell ID.

An advantage of multi-tier geofence detection is conservation ofresources in the baseband subsystem of mobile device 100. Mobile device100 can be configured to perform multiple tasks, each task beingassociated with multiple geographic regions, and each region beingassociated with multiple cells. The baseband subsystem of mobile device100 can have a limited amount of memory for registering cell IDs,therefore a limit on how many cell IDs can be registered. Using filters(e.g., MCC and LAC) can reduce the number of cell IDs that areregistered concurrently, thus allowing mobile device 100 to beconfigured to perform more location based tasks. In addition to usingtiers based on MCC and LAC, other tiers (e.g., a tier based mobilenetwork code (MNC)) can be used to detect geofences.

The application subsystem can continue monitoring the current locationof mobile device 100 with finer location accuracy then cells of acellular network, which can have a location accuracy measured inkilometers. For example, the application subsystem can continuemonitoring the current location of mobile device 100 using GPS, or bytriangulation using WLAN access points. To triangulate the currentlocation of mobile device 100, mobile device 100 can request from aserver (or query a database on mobile device 100) one or moreidentifiers (e.g., Media Access Control (MAC) addresses) of WLAN accesspoints. The identifiers can be associated with geographic locations ofthe WLAN access points. Mobile device 100 can detect the MAC addressesof the WLAN access points located within a communication range of mobiledevice 100. Mobile device 100 can calculate current location 150 basedon locations 156 a, 156 b, 156 c, and 156 d of the WLAN access points.The application subsystem can perform the task associated withgeographic region 104 when current location 150 intersects (e.g.,completely or partially includes or is completely or partially includedin) geographic region 104.

Exemplary Tiers of Multi-tier Geofence Detection

FIG. 2 illustrates an exemplary tier of geofence detection where MCC isused to determine a coarse location of mobile device 100. Forconvenience, only North America and Hawaiian Islands are shown in FIG.2. Furthermore, only Canada, United States, and Mexico are given asexamples for coarse location determination using MCC. The techniques oflocation filtering using MCC is applicable to other countries andcontinents.

Mobile device 100 can detect, using a baseband subsystem, a current MCCof mobile device 100. The current MCC of mobile device 100 can beobtained from a specialized processor that is responsible for wirelesscommunications and control. In various implementations, the specializedprocessors can be known as baseband processors, GSM wireless modems, anduniversal mobile telecommunications system (UMTS) wireless modems. AnMCC is a code that the International Telecommunication Union (ITU)assigned to a country. The MCC is unique for each country and can beused to identify the country. Each country can have one or more MCCsassigned to it. Table 1 illustrates some example MCCs and correspondingcountries of FIG. 2.

TABLE 1 Exemplary MCCs MCC Country 302 Canada 310-316 United States ofAmerica 334 Mexico

To determine whether geographic region 104 is associated with aparticular MCC, a system can generate polygons that are bounding boxesof the country of each MCC and determine whether geographic region 104intersects the polygon or polygons of the MCC. For example, bounding box120 can correspond to MCC “302” (Canada). Bounding boxes 122 cancorrespond to MCCs “310,” “311,” “312,” “313,” “314,” “315,” and “316”(United States). Bounding box 124 can correspond to MCC “334” (Mexico).For simplicity, bounding boxes for other North American countries arenot shown in FIG. 1. A system (either mobile device 100, or a serverdevice connected to mobile device 100 through a communications network,or both) can determine which MCC is to be associated with geographicregion 104. For example, geographic region 104 can have a center withlatitude and longitude coordinates 37°47′27.56″N and 122°24′08.69″W,indicating that geographic region 104 is located at 300 Bush Street, SanFrancisco, Calif., U.S.A. This location is inside bounding box 122 forthe United States. Therefore, geographic region 104 can be associatedwith MCCs “310,” “311,” “312,” “313,” “314,” “315,” and “316.”

The system can use various algorithms to determine a bounding box (e.g.,bounding box 122) of a country associated with an MCC. A country (e.g.,Canada) can be represented as one or more simple polygons whose verticescan be stored in latitude and longitude coordinates. The bounding box ofa country can be a convex hull of the simple polygon of the countrydetermined by, for example, Akl-Toussaint heuristics or Melkman'sAlgorithm. In some implementations, a bounding box of a country can bedetermined by extreme points within the boundaries of the country (e.g.,easternmost, westernmost, northernmost, and southernmost points). Thebounding box can be a substantially rectangular area (e.g., rectangles120, 122 and 124) on a map drawn using Mercator projection. The boundingbox can be stored using latitude/longitude coordinates of two points(e.g., its north-west vertex and its southeast vertex).

For example, bounding box 120 enclosing Canada can have a northernboundary that is delineated by latitude 83°08′N, corresponding to thelatitude of Cape Columbia, Ellesmere Island, Nunavut, an extreme northpoint within the Canadian boundary. Bounding box 120 can have a southernboundary delineated by latitude 41°41′N, corresponding to the latitudeof Middle Island, Ontario, an extreme southern point of Canada. Boundingbox 120 can have an eastern boundary delineated by longitude 52°37′W(Cape Spear, Newfoundland), and a western boundary delineated bylongitude 141°00′W (Yukon-Alaska border). Bounding box 120 can be storedin two sets of coordinates (e.g., 83°08′N/141°00′W and 41°41′N/52°37′W).

Some countries (e.g., the United States) can be represented as multiplesimple polygons (e.g., Alaska, 48 continental states, and Hawaii).Countries that can be represented using multiple simple polygons canhave multiple bounding boxes (e.g., bounding boxes 122 a for Alaska,bounding box 122 b for continental 48 states, and bounding box 122 c forHawaii). Bounding boxes of various countries can overlap, as shown inthe overlapping areas between bounding boxes 120 and 122 a, for example.

Bounding boxes can be stored on mobile device 100 in association withMCCs, or on a server. For example, mobile device 100 can store, or beconnected to, a geographic database, in which MCCs and correspondingbounding boxes are stored. MCC “302” (Canada) can be associated with thenorth-west vertex and southeast vertex of bounding box 120, forinstance.

FIG. 3 illustrates an exemplary tier of geofence detection where mobiledevice 100 is configured to monitor multiple cells of a cellularcommunications network. Mobile device 100 can be configured to performcertain tasks when mobile device is located in geographic region 300.Geographic region 300 can be sufficiently large such that geographicregion 300 is associated with multiple cells (e.g., cells 302 a, 302 b,and 304). Due to memory limitations of the baseband subsystem of mobiledevice 100, not all cells 302 a, 302 b, and 304 can be registered withthe baseband subsystem of mobile device 100.

Mobile device 100 can select a subset of cells to register when thememory limitation prevents mobile device 100 from registering all cells.In some implementations, a cell can be selected based on distancesbetween the cell and a center of geographic region 300. The cells can besorted based on a distance between each of the cells and the center(marked as an “X” in FIG. 3) of geographic region 300. The distancebetween a cell (e.g., cell 304) and the center can be measured using adistance between an estimated position of the cell and the center. Theestimated position of the cell can be determined by, for example, anaverage of locations of location-aware mobile devices when thelocation-aware mobile devices are connected to the cell. The estimatedposition can coincide with the actual geographic location of the celltower of the cell. The cell can also have an estimated size, which canbe determined mathematically by a distribution of the locations of thelocation-aware mobile devices.

Mobile device 100 can register cell IDs of cells that are closest to thecenter of geographic region 300. Cells that are far away from the center(e.g., cells 302 a and 302 b) can be excluded. Thus, when mobile device100 moves toward geographic region 300, the baseband subsystem of mobiledevice 100 can ignore cells 302 a and 302 b. The baseband subsystem ofmobile device 100 can notify the application subsystem of mobile device100 when mobile device 100 enters one of the cells (e.g., cell 304) thatis close to the center of geographic region 300.

FIG. 4 illustrates an exemplary tier of geofence detection where accesspoints of a wireless local area network (WLAN) are used to determine acurrent location of mobile device 100. The exemplary tier of geofencedetection of FIG. 4 can be performed by an application subsystem ofmobile device 100.

Mobile device 100 can be located within communication range of accesspoints 404 a-d. Mobile device 100 can be connected to one of the accesspoints 404 a-d (e.g., 404 a). From access point 404 a, mobile device 100can receive data that includes information on the locations (includinglocations 156 a-d) of access points 404 a-d. Mobile device 100 can storethe received data on a storage device (e.g., a flash memory device)coupled to mobile device 100. The stored data can be updatedperiodically.

Mobile devices 100 can identify access points 404 a, 404 b, 404 c, and404 d under wireless communication protocols used in the WLAN (e.g.,IEEE 802.11x). Access points 404 a, 404 b, 404 c, and 404 d can beidentified by MAC addresses of the access points or other identifiers(e.g., Bluetooth™ identifiers).

Mobile device 100 can identify locations 156 a, 156 b, 156 c, and 156 dthat are associated with access points 404 a-d, respectively.Identifying locations 156 a, 156 b, 156 c, and 156 d can includeretrieving information on the locations 156 a, 156 b, 156 c, and 156 dfrom the memory device coupled to mobile device 100. In someimplementations, mobile device 100 can request from a server thelocations 156 a, 156 b, 156 c, and 156 d by querying the server usingidentifiers of access points 404 a-d. Locations 156 a, 156 b, 156 c, and156 d need not be the actual, physical locations of access points 404a-d. Locations 156 a, 156 b, 156 c, and 156 d can be areas that aredetermined by the server to be areas where mobile devices that areconnected to access points 404 a-d are most likely to be present.

Based on locations 156 a-d, mobile device 100 can execute an iterativeprocess (e.g., a multi-pass analysis). The iterative process cancalculate an average locations 156 a-d, select a subset of locations 156a-d that are closest to the average, and calculate the average again,and so on, until a desired precision is reached or until only a certainnumber of locations 156 a-d are left. The iterative process can producegeographic area 150, which can be an estimate of the current geographiclocation of mobile device 100. Geographic area 150 can be a geographicspace (e.g., a particular floor in a building) when three-dimensionallocation information is utilized. Mobile device 100 can perform a taskassociated with geographic region 104 when geographic area 150intersects geographic region 104.

Exemplary Components of Multi-tier Geofence Detection

FIG. 5 is a block diagram illustrating various modules of mobile device100 configured to utilize techniques of multi-tier geofence detection.Mobile device 100 can be, for example, a handheld computer, a personaldigital assistant, a cellular telephone, an electronic tablet, a networkappliance, a camera, a smart phone, an enhanced general packet radioservice (EGPRS) mobile phone, a network base station, a media player, anavigation device, an email device, a game console, or a combination ofany two or more of these data processing devices or other dataprocessing devices.

Mobile device 100 can include, among other components, applicationsubsystem 502 and baseband subsystem 504. Application subsystem 502 caninclude application operating system 514, and application processor 506.One or more application programs 508 can execute in applicationsubsystem 502. Application programs 508 can be location-based (e.g.,configured to be invoked or notified when mobile device 100 is at ornear a geographic region). Application operating system 514 can includevarious location functions 510. Location functions 510 can include, forexample, functions that can retrieve current geographic location from aGPS receiver, and functions for communicating with baseband subsystem504. Location functions 510 can be exposed to application programs 508through location API 512. Location API 512 can have a public interfacethat allows development of “crowdware.” Crowdware can include usergenerated software (e.g., miniature application programs or widgets)that can be invoked when mobile device 100 is located in a particulargeographic region (e.g., geographic region 104).

Location functions 510 can communicate with location monitoring program520 of baseband subsystem 504. In some implementations, locationmonitoring program 520 can be exposed to location functions 510 throughAPI 522. Baseband subsystem 504 can include baseband operating system518 and baseband processor 520.

Location functions 510 can register various location identifiers withlocation monitoring program 520. The location identifiers can includemulti-tiered information, including MCC, MNC, LAC, cell ID, or otheridentifiers of wireless access gateways. The location identifiers can bestored in registered location identifier data store 526. Locationmonitoring program 520 can monitor a current wireless access gateway.Monitoring the current wireless access gateway can include monitoring acurrent MCC, MNC, LAC, cell ID, or other identifiers of wireless accessgateways using the baseband operating system 518 and baseband processor520 of mobile device 100. Upon receiving information on the wirelessaccess gateway, location monitoring program 520 can compare the receivedinformation with the location identifiers in data store 526. If a matchis found, location monitoring program 520 can pass the matchedidentifier to application operating system 514 of the applicationsubsystem 502.

Application operating system 514 can determine a next action based thereceived identifier, using tier manager 530. Tier manager 530 candetermine whether the received identifier requires more granularmonitoring, or is sufficient to trigger an invocation or notification oflocation based application program 508. For example, if location basedapplication program 508 is associated with a geographic region that haslocation accuracy at cell level, and the identifier received frombaseband subsystem corresponds to the geographic region, tier manager530 can inform location functions 510 that location based applicationprogram 508 can be invoked or notified.

If the received identifier is a higher-level identifier (e.g., an MCC ora LAC) that identifies a geographic region that has a lower locationaccuracy than defined for the geographic region associated with locationbased application program 508, tier manager 530 can determine that finergranulated monitoring is necessary. Tier manager 530 can re-registerwith baseband subsystem 504 using the identifier of a next tier. Forexample, when location monitoring program 520 identifies a matching LAC,tier manager 530 can provide cell IDs of one or more cells in the LACfor monitoring. The one or more cells can be cells that intersect withthe geographic region that is associated with location based application508.

Exemplary Multi-tier Geofence Detection Processes

FIG. 6 is flowcharts illustrating exemplary process 600 implementingmulti-tier geofence detection techniques. For convenience, exemplaryprocess 600 will be described with respect to mobile device 100 thatimplements exemplary process 600.

A task can be associated (602) with a geographic region. The task can bean application program (e.g., application program 508) that executes ina first subsystem (e.g., application subsystem 502) of mobile device100, or a function (e.g., making a phone call) that executes in a secondsubsystem (e.g., baseband subsystem 504), or a combination of both. Thegeographic region can be a circular area having a center and a radius,or an arbitrary geometric shape. The geographic region can be defined byone or more sets of latitude-longitude coordinates. In someimplementations, the geographic region can be a space (e.g., aparticular floor of a building, a flight path of an aircraft, or aparticular section of a ski area), further defined by one or morealtitude parameters.

Mobile device 100 can determine (604) one or more of MCCs, LACs, andcell IDs associated with the geographic region. Determining the MCCs,LACs, and cell IDs can include acquiring the MCCs, LACs, and cell IDfrom a server, the server connected to mobile device 100 through a wiredor wireless communications network. In some implementations, acquiringthe MCCs, LACs, and cell ID from the server can include requesting theMCCs, LACs, and cell ID from the server by sending the geographiccoordinates of the geographic region to the server. Determining theMCCs, LACs, and cell IDs can include registering the MCCs with basebandsubsystem 504 of mobile device 100.

Mobile device 100 can determine (606) that mobile device 100 is in thecountry of the geographic region. Determining that mobile device 100 isin the country of the geographic region can include monitoring a currentMCC of mobile device 100 using baseband subsystem 504 of mobile device100, comparing the current MCC with the registered MCCs, and notifyingapplication subsystem 502 of mobile device 100 if a match is found.

Upon being notified of the matching MCC, mobile device 100 can registerone or more LACs with baseband subsystem 504. The LACs can be LACs thatare located within the country represented by the MCC and associatedwith the geographic region. Mobile device 100 can determine (608) thatmobile device 100 is in the location area of the geographic region.Determining that mobile device 100 is in the location area of thegeographic region can include monitoring a current LAC of mobile device100 using baseband subsystem 504 of mobile device 100, comparing thecurrent LAC with the registered LACs, and notifying applicationsubsystem 502 of mobile device 100 if a match is found.

Upon being notified of the matching LAC, mobile device 100 can registerone or more cell IDs with baseband subsystem 504. The cell IDs can becell IDs that are located within the location area represented by theLAC and associated with the geographic region. Mobile device 100 candetermine (610) that mobile device 100 is in the cell of the geographicregion. Determining that mobile device 100 is in a cell of thegeographic region can include monitoring a current cell ID of mobiledevice 100 using baseband subsystem 504 of mobile device 100, comparingthe current cell ID with the registered cell IDs, and notifyingapplication subsystem 502 of mobile device 100 if a match is found.

Mobile device 100 can perform (612) the task configured to be performedwhen mobile device 100 is located in the geographic region upondetermining that mobile device 100 is in a cell of the geographicregion. Performing the task can include invoking or notifying theapplication program (e.g., application program 508).

In some implementations, baseband subsystem 504 of mobile device 100 canbe configured to notify application subsystem 502 when mobile device 100leaves the location area of the geographic region or the country of thegeographic region. When mobile device 100 leaves the location area ofthe geographic region or the country of the geographic region, the cellsor location areas currently registered with baseband subsystem 504 canbe de-registered (e.g., released), freeing memory space of basebandsubsystem 504. The freed memory space can be used for registering cellIDs or location areas for other tasks.

FIG. 7 is flowcharts illustrating exemplary process 700 implementingmulti-tier geofence detection techniques. For convenience, exemplaryprocess 700 will be described with respect to mobile device 100 thatimplements exemplary process 700.

Mobile device 100 can receive (702) a request to perform a task whenmobile device 100 is located in a geographic region. The request can beassociated with an application program (e.g., location based applicationprogram 508) that is downloaded from a server, copied from a storagedevice connected to mobile device 100, or created on mobile device 100.The geographic region can be configured on mobile device 100, or on theserver from which the application program is downloaded.

Mobile device 100 can monitor (704) a current cell of a cellularcommunications network, including determining a current cell ID ofmobile device 100. In some implementations, monitoring the current cellof mobile device 100 can include monitoring a current location area ofmobile device 100, including determining a current location area code ofmobile device 100. Monitoring the current cell of mobile device 100 canfurther include determining that the current location area intersectsthe geographic region, and, upon determining that the current locationarea intersects the geographic region, monitoring the current cell ofmobile device 100. A geographic area (e.g., a country, a location area,or a cell) intersects the geographic region if at least a portion of thegeographic area is contained in the geographic region.

In some implementations, monitoring the current cell of mobile device100 can include monitoring a current country of mobile device 100,including determining a current mobile country code of mobile device100. Monitoring the current cell of mobile device 100 can furtherinclude determining that the current country intersects the geographicregion, and, upon determining that the current country intersects thegeographic region, monitoring a current location area or the currentcell of mobile device 100. Determining that the current countryintersects the geographic region can include determining that thegeographic region intersects one or more polygons corresponding to thecurrent country. Determining the current cell, current location area,and current country can be accomplished using baseband subsystem 504 ofmobile device 100.

Mobile device 100 can determine (706) that the current cell intersectsthe geographic region. Determining that the current cell intersects thegeographic region can include comparing the current cell ID with one ormore registered cell IDs, the registered cell IDs being associated withthe geographic region. Location and area of the current cell can bedetermined based on historical usage data. For example, the location andarea of the current cell can be determined using locations oflocation-aware mobile devices that are connected to a cell tower of thecell. The location and area of the current cell can by dynamic,determined based on time of day.

Upon determining that the current cell intersects the geographic region,mobile device 100 can monitor (708) a current location of the mobiledevice on a level that is more detailed than current cell. Monitoringthe current location can include determining the current location usingone or more wireless access gateways located within a communicationrange of mobile device 100. In some implementations, determining thecurrent location can include invoking an application program thattriangulates the current location based on locations of the one or morewireless access gateways. The application program that performs thetriangulation can execute in application subsystem 502 of mobile device100. The wireless access gateways can include wireless access points ofa wireless local area network. Additionally or alternatively, monitoringthe current location can include determining the current location usinga global positioning system (GPS). Determining the current locationusing GPS can be performed in application subsystem 502 of mobile device100.

Mobile device 100 can perform (710) the task upon determining that thecurrent location of the mobile device is within the geographic region.Performing the task can include invoking or notifying an applicationprogram (e.g., location-based application 508) in application subsystem502 from baseband subsystem 504. Likewise, in some implementations,mobile device 100 can perform a task when mobile device leaves ageographic region, a cell, a location area, or a country.

FIG. 8 is a flowchart illustrating exemplary process 800 of multi-tiergeofence detection using various location accuracies. For convenience,exemplary process 800 will be described with respect to mobile device100 that implements exemplary process 800.

Mobile device 100 can receive (802) a request to perform a task, therequest specifying that the task is to be performed when the mobiledevice is located in a pre-specified first geographic region. The firstgeographic region can be specified using a first location accuracy. Thefirst location accuracy can be measured in terms of meters. Measuring aposition of mobile device 100 at the first location accuracy caninclude, for example, triangulating the position of mobile device 100using WiFi™ or WiMax access points, or using GPS technology.

Mobile device can monitor (804) a current location of mobile device 100using a second location accuracy. Monitoring the current location ofmobile device 100 using the second location accuracy can includemonitoring a cell of a cellular network in which mobile device 100 islocated, a location area of the cellular network, and a country. Thesecond location accuracy initially can be less precise than the firstlocation accuracy. For example, the second location accuracy can bemeasured in kilometers, miles, degrees of longitude, etc.

Mobile device 100 can determine (806) that mobile device 100 is locatedin a second geographic region. The second geographic region can bespecified using the second location accuracy. The second geographicregion can include at least a portion of the first geographic region.For example, the second geographic can be a location area thatencompasses the geographic region.

Mobile device 100 can refine (808) the second location accuracy upon thedetermining. For example, when mobile device 100 has determined thatmobile device 100 is in a country that intersects the geographic region,mobile device 100 can refine the second location accuracy from countryto location area. When mobile device 100 has determined that mobiledevice 100 is in a location area that intersects the geographic region,mobile device 100 can refine the second location accuracy from locationareas to cells. When mobile device 100 has determined that mobile device100 is in a cell that intersects the geographic region, mobile device100 can refine the second location accuracy from cells to GPS ortriangulation.

Mobile device 100 can repeat the monitoring (e.g., stage 804), thedetermining (e.g., stage 806), and the refining (e.g., stage 808) untilan exit condition is satisfied. Mobile device 100 can determine (810)that the exit condition is satisfied when the second location accuracyis equivalent to the first location accuracy, or when mobile device 100has determined that mobile device 100 is currently located in thegeographic region, or both. Mobile device 100 can invoke (812) theapplication program upon determining that mobile device 100 is locatedin the first geographic region.

If mobile device 100 moves away from the geographic region, the secondlocation accuracy can be relaxed. For example, if mobile device 100moves out of a location area in which the first geographic region islocated, mobile device 100 can automatically start monitoring locationareas instead of cells of the location areas. Likewise, when mobiledevice 100 moves out of a country in which the first geographic regionis located, mobile device 100 can automatically start monitoringcountries instead of cells or location areas.

Exemplary Mobile Device Architecture

FIG. 9 is a block diagram of exemplary architecture 900 for the mobiledevices of FIGS. 1-8. A mobile device can include memory interface 902,one or more data processors, image processors and/or processors 904, andperipherals interface 906. Memory interface 902, one or more processors904 and/or peripherals interface 906 can be separate components or canbe integrated in one or more integrated circuits. Processors 904 caninclude one or more application processors (APs) and one or morebaseband processors (BPs). The application processors and basebandprocessors can be integrated in one single process chip. The variouscomponents in mobile device 100, for example, can be coupled by one ormore communication buses or signal lines.

Sensors, devices, and subsystems can be coupled to peripherals interface906 to facilitate multiple functionalities. For example, motion sensor910, light sensor 912, and proximity sensor 914 can be coupled toperipherals interface 906 to facilitate orientation, lighting, andproximity functions of the mobile device. Location processor 915 (e.g.,GPS receiver) can be connected to peripherals interface 906 to providegeopositioning. Electronic magnetometer 916 (e.g., an integrated circuitchip) can also be connected to peripherals interface 906 to provide datathat can be used to determine the direction of magnetic North. Thus,electronic magnetometer 916 can be used as an electronic compass.Accelerometer 917 can also be connected to peripherals interface 906 toprovide data that can be used to determine change of speed and directionof movement of the mobile device.

Camera subsystem 920 and an optical sensor 922, e.g., a charged coupleddevice (CCD) or a complementary metal-oxide semiconductor (CMOS) opticalsensor, can be utilized to facilitate camera functions, such asrecording photographs and video clips.

Communication functions can be facilitated through one or more wirelesscommunication subsystems 924, which can include radio frequencyreceivers and transmitters and/or optical (e.g., infrared) receivers andtransmitters. The specific design and implementation of thecommunication subsystem 924 can depend on the communication network(s)over which a mobile device is intended to operate. For example, a mobiledevice can include communication subsystems 924 designed to operate overa GSM network, a GPRS network, an EDGE network, a Wi-Fi or WiMaxnetwork, and a Bluetooth network. In particular, the wirelesscommunication subsystems 924 can include hosting protocols such that themobile device can be configured as a base station for other wirelessdevices.

Audio subsystem 926 can be coupled to a speaker 928 and a microphone 930to facilitate voice-enabled functions, such as voice recognition, voicereplication, digital recording, and telephony functions.

I/O subsystem 940 can include touch screen controller 942 and/or otherinput controller(s) 944. Touch-screen controller 942 can be coupled to atouch screen 946 or pad. Touch screen 946 and touch screen controller942 can, for example, detect contact and movement or break thereof usingany of a plurality of touch sensitivity technologies, including but notlimited to capacitive, resistive, infrared, and surface acoustic wavetechnologies, as well as other proximity sensor arrays or other elementsfor determining one or more points of contact with touch screen 946.

Other input controller(s) 944 can be coupled to other input/controldevices 948, such as one or more buttons, rocker switches, thumb-wheel,infrared port, USB port, and/or a pointer device such as a stylus. Theone or more buttons (not shown) can include an up/down button for volumecontrol of speaker 928 and/or microphone 930.

In one implementation, a pressing of the button for a first duration maydisengage a lock of the touch screen 946; and a pressing of the buttonfor a second duration that is longer than the first duration may turnpower to mobile device 100 on or off. The user may be able to customizea functionality of one or more of the buttons. The touch screen 946 can,for example, also be used to implement virtual or soft buttons and/or akeyboard.

In some implementations, mobile device 100 can present recorded audioand/or video files, such as MP3, AAC, and MPEG files. In someimplementations, mobile device 100 can include the functionality of anMP3 player, such as an iPod™ Mobile device 100 may, therefore, include apin connector that is compatible with the iPod. Other input/output andcontrol devices can also be used.

Memory interface 902 can be coupled to memory 950. Memory 950 caninclude high-speed random access memory and/or non-volatile memory, suchas one or more magnetic disk storage devices, one or more opticalstorage devices, and/or flash memory (e.g., NAND, NOR). Memory 950 canstore operating system 952, such as Darwin, RTXC, LINUX, UNIX, OS X,WINDOWS, or an embedded operating system such as VxWorks. Operatingsystem 952 may include instructions for handling basic system servicesand for performing hardware dependent tasks. In some implementations,operating system 952 can include a kernel (e.g., UNIX kernel).

Memory 950 may also store communication instructions 954 to facilitatecommunicating with one or more additional devices, one or more computersand/or one or more servers. Memory 950 may include graphical userinterface instructions 956 to facilitate graphic user interfaceprocessing; sensor processing instructions 958 to facilitatesensor-related processing and functions; phone instructions 960 tofacilitate phone-related processes and functions; electronic messaginginstructions 962 to facilitate electronic-messaging related processesand functions; web browsing instructions 964 to facilitate webbrowsing-related processes and functions; media processing instructions966 to facilitate media processing-related processes and functions;GPS/Navigation instructions 968 to facilitate GPS and navigation-relatedprocesses and instructions; camera instructions 970 to facilitatecamera-related processes and functions; magnetometer data 972 andcalibration instructions 974 to facilitate magnetometer calibration. Thememory 950 may also store other software instructions (not shown), suchas security instructions, web video instructions to facilitate webvideo-related processes and functions, and/or web shopping instructionsto facilitate web shopping-related processes and functions. In someimplementations, the media processing instructions 966 are divided intoaudio processing instructions and video processing instructions tofacilitate audio processing-related processes and functions and videoprocessing-related processes and functions, respectively. An activationrecord and International Mobile Equipment Identity (IMEI) or similarhardware identifier can also be stored in memory 950. Memory 950 caninclude location instructions 976 that can include location functions510, location monitoring program 520, and tier manager 530.

Each of the above identified instructions and applications cancorrespond to a set of instructions for performing one or more functionsdescribed above. These instructions need not be implemented as separatesoftware programs, procedures, or modules. Memory 950 can includeadditional instructions or fewer instructions. Furthermore, variousfunctions of the mobile device may be implemented in hardware and/or insoftware, including in one or more signal processing and/or applicationspecific integrated circuits.

Exemplary Operating Environment

FIG. 10 is a block diagram of exemplary network operating environment1000 for the mobile devices of FIGS. 1-9. Mobile devices 1002 a and 1002b can, for example, communicate over one or more wired and/or wirelessnetworks 1010 in data communication. For example, a wireless network1012, e.g., a cellular network, can communicate with a wide area network(WAN) 1014, such as the Internet, by use of a gateway 1016. Likewise, anaccess device 1018, such as an 802.11g wireless access device, canprovide communication access to the wide area network 1014.

In some implementations, both voice and data communications can beestablished over wireless network 1012 and the access device 1018. Forexample, mobile device 1002 a can place and receive phone calls (e.g.,using voice over Internet Protocol (VoIP) protocols), send and receivee-mail messages (e.g., using Post Office Protocol 3 (POP3)), andretrieve electronic documents and/or streams, such as web pages,photographs, and videos, over wireless network 1012, gateway 1016, andwide area network 1014 (e.g., using Transmission ControlProtocol/Internet Protocol (TCP/IP) or User Datagram Protocol (UDP)).Likewise, in some implementations, the mobile device 1002 b can placeand receive phone calls, send and receive e-mail messages, and retrieveelectronic documents over the access device 1018 and the wide areanetwork 1014. In some implementations, mobile device 1002 a or 1002 bcan be physically connected to the access device 1018 using one or morecables and the access device 1018 can be a personal computer. In thisconfiguration, mobile device 1002 a or 1002 b can be referred to as a“tethered” device.

Mobile devices 1002 a and 1002 b can also establish communications byother means. For example, wireless device 1002 a can communicate withother wireless devices, e.g., other mobile devices 1002 a or 1002 b,cell phones, etc., over the wireless network 1012. Likewise, mobiledevices 1002 a and 1002 b can establish peer-to-peer communications1020, e.g., a personal area network, by use of one or more communicationsubsystems, such as the Bluetooth™ communication devices. Othercommunication protocols and topologies can also be implemented.

The mobile device 1002 a or 1002 b can, for example, communicate withone or more services 1030 and 1040 over the one or more wired and/orwireless networks. For example, one or more location registrationservices 1030 can be used to associate application programs withgeographic regions. The application programs that have been associatedwith one or more geographic regions can be provided for download tomobile devices 1002 a and 1002 b.

Location-gateway mapping service 1040 can determine one or moreidentifiers of wireless access gateways associated with a particulargeographic region, and provide the one or more identifiers to mobiledevices 1002 a and 1002 b for registration in association with abaseband subsystem.

Mobile device 1002 a or 1002 b can also access other data and contentover the one or more wired and/or wireless networks. For example,content publishers, such as news sites, Rally Simple Syndication (RSS)feeds, web sites, blogs, social networking sites, developer networks,etc., can be accessed by mobile device 1002 a or 1002 b. Such access canbe provided by invocation of a web browsing function or application(e.g., a browser) in response to a user touching, for example, a Webobject.

A number of implementations of the invention have been described.Nevertheless, it will be understood that various modifications can bemade without departing from the spirit and scope of the invention. Forexample, cells are represented as hexagons in the figures. The actualshape of a cell can vary.

What is claimed is:
 1. A computer-implemented method, comprising:receiving, by a mobile device, a request to perform a location-basedtask, the location-based task comprising operations of executing aprogram when the mobile device is located in a specified geographicregion; monitoring, using a baseband subsystem of the mobile devicewhile an application subsystem of the mobile device is in a power-savingmode, a current location of the mobile device, including: comparing atleast a portion of a current location identifier received by thebaseband subsystem from a cellular network with a first registeredlocation identifier, the first registered location identifiercorresponding to a first tier of location granularity and beingregistered with the baseband subsystem by the application subsystem; andbased on a result of the comparing, activating the applicationsubsystem, wherein the application subsystem comprises an applicationprocessor, and the baseband subsystem comprises a baseband processorthat consumes less power than the application subsystem when theapplication subsystem is activated; triggering, by the applicationsubsystem upon being activated, a change of location monitoring, thechange of location monitoring including at least one of: registering, atthe baseband subsystem, a second location identifier corresponding to asecond tier of location granularity for monitoring a current location;or transferring location monitoring to the application subsystem; andperforming the task by the mobile device upon determining, by either thebaseband subsystem or the application subsystem, that the currentlocation of the mobile device is within the geographic region.
 2. Themethod of claim 1, wherein the received current location identifiercomprises a current location area code, the first registered locationidentifier comprises a registered location area code, and monitoring thecurrent location of the mobile device by the baseband subsystemincludes: comparing the current location area code with the registeredlocation area code; and upon determining that the current location areacode matches the registered location area code, activating theapplication subsystem of the mobile device.
 3. The method of claim 1,wherein the received current location identifier comprises a currentmobile country code, the first registered location identifier comprisesa registered mobile country code, and monitoring the current location ofthe mobile device by the baseband subsystem includes: comparing thecurrent mobile country code with the registered mobile country code; andupon determining that the current mobile country code matches theregistered mobile country code, activating the application subsystem. 4.The method of claim 1, wherein the received current location identifiercomprises a current mobile network code, the first registered locationidentifier comprises a registered mobile network code, and monitoringthe current location of the mobile device by the baseband subsystemincludes: comparing the current mobile network code with the registeredmobile network code; and upon determining that the current network codematches the registered network country code, activating the applicationsubsystem.
 5. The method of claim 1, wherein the received currentlocation identifier comprises a current cell identifier, the firstregistered location identifier comprises a registered cell identifier,and monitoring the current location of the mobile device by the basebandsubsystem includes: comparing the current cell identifier with theregistered cell identifier; and upon determining that the current cellidentifier matches the registered cell identifier, activating theapplication subsystem.
 6. The method of claim 1, wherein transferringlocation monitoring to the application subsystem includes invoking anapplication program that triangulates the current location based onlocations of one or more wireless access gateways, the applicationprogram executing by the application subsystem of the mobile device. 7.The method of claim 1, wherein transferring location monitoring to theapplication subsystem includes determining the current location using aglobal positioning system (GPS) signal.
 8. The method of claim 1,wherein: performing the location-based task includes invoking anapplication program by the application subsystem.
 9. The method of claim6, wherein the wireless access gateways include wireless access pointsof a wireless local area network.
 10. A system comprising: an interfaceconfigured for receiving a request to perform a location-based task, thelocation-based task comprising executing a program when a mobile deviceis located in a specified geographic region; an application subsystemcomprising an application processor; and a baseband subsystem comprisinga baseband processor configured for monitoring a current location of themobile device while the application subsystem of the mobile device is ina power-saving mode, monitoring the current location comprising:comparing at least a portion of a current location identifier receivedby the baseband subsystem from a cellular network with a firstregistered location identifier, the first registered location identifiercorresponding to a first tier of location granularity and beingregistered with the baseband subsystem by the application subsystem;based on a result of the comparing, activating the applicationsubsystem, wherein the application subsystem comprises an applicationprocessor, and the baseband subsystem comprises a baseband processorthat consumes less power than the application subsystem when theapplication subsystem is activated; and triggering, by the applicationsubsystem upon being activated, a change of location monitoring, thechange of location monitoring including at least one of: registering, atthe baseband subsystem, a second location identifier corresponding to asecond tier of location granularity for monitoring a current location;or transferring location monitoring to the application subsystem,wherein the application subsystem performs the task upon determining, byeither the baseband subsystem or the application subsystem, that thecurrent location of the mobile device is within the geographic region.11. The system of claim 10, wherein the received current locationidentifier comprises a current location area code, the first registeredlocation identifier comprises a registered location area code, andmonitoring the current location of the mobile device by the basebandprocessor includes: comparing the current location area code with theregistered location area code; and upon determining that the currentlocation area code matches the registered location area code, activatingthe application subsystem of the mobile device.
 12. The system of claim10, wherein the received current location identifier comprises a currentmobile country code, the first registered location identifier comprisesa registered mobile country code, and monitoring the current location ofthe mobile device by the baseband processor includes: comparing thecurrent mobile country code with the registered mobile country code; andupon determining that the current mobile country code matches theregistered mobile country code, activating the application subsystem ofthe mobile device.
 13. A computer program product, tangibly stored on amobile device, operable to cause the mobile device to perform operationscomprising: receiving a request to perform a location-based task, thelocation-based task comprising operations of executing a program whenthe mobile device is located in a specified geographic region;monitoring, using a baseband subsystem of the mobile device while anapplication subsystem of the mobile device is in a power-saving mode, acurrent location of the mobile device, including: comparing at least aportion of a current location identifier received by the basebandsubsystem from a cellular network with a first registered locationidentifier, the first registered location identifier corresponding to afirst tier of location granularity and being registered with thebaseband subsystem by the application subsystem; and based on a resultof the comparing, activating the application subsystem, wherein theapplication subsystem comprises an application processor, and thebaseband subsystem comprises a baseband processor that consumes lesspower than the application subsystem when the application subsystem isactivated; triggering, by the application subsystem upon beingactivated, a change of location monitoring, the change of locationmonitoring including at least one of: registering, at the basebandsubsystem, a second location identifier corresponding to a second tierof location granularity for monitoring a current location; ortransferring location monitoring to the application subsystem; andperforming the task by the mobile device upon determining, by either thebaseband subsystem or the application subsystem, that the currentlocation of the mobile device is within the geographic region.
 14. Theproduct of claim 13, wherein the received current location identifiercomprises a current location area code, the first registered locationidentifier comprises a registered location area code, and monitoring thecurrent location of the mobile device by the baseband subsystemincludes: comparing the current location area code with the registeredlocation area code; and upon determining that the current location areacode matches the registered location area code, activating theapplication subsystem of the mobile device.
 15. The product of claim 13,wherein the received current location identifier comprises a currentmobile country code, the first registered location identifier comprisesa registered mobile country code, and monitoring the current location ofthe mobile device by the baseband subsystem includes: comparing thecurrent mobile country code with a registered mobile country code; andupon determining that the current mobile country code matches theregistered mobile country code, activating the application subsystem.16. The product of claim 13, wherein the received current locationidentifier comprises a current mobile network code, the first registeredlocation identifier comprises a registered mobile network code, andmonitoring the current location of the mobile device by the basebandsubsystem includes: comparing the current mobile network code with theregistered mobile network code; and upon determining that the currentnetwork code matches the registered network country code, activating theapplication subsystem.
 17. The product of claim 13, wherein the receivedcurrent location identifier comprises a current cell identifier, thefirst registered location identifier comprises a registered lo cellidentifier, and monitoring the current location of the mobile device bythe baseband subsystem includes: comparing the current cell identifierwith the registered cell identifier; and upon determining that thecurrent cell identifier matches the registered cell identifier,activating the application subsystem.
 18. The product of claim 13,wherein transferring location monitoring to the application subsystemincludes invoking an application program that triangulates the currentlocation based on locations of the one or more wireless access gateways,the application program executing in the application subsystem of themobile device.